Expand description
Recursively find files in a directory using globs.
Features include
gitignore
’s extended glob syntax- Control over symlink behavior
- Control depth walked
- Control order results are returned
Examples
Finding image files in the current directory.
extern crate globwalk;
use std::fs;
for img in globwalk::glob("*.{png,jpg,gif}")? {
if let Ok(img) = img {
fs::remove_file(img.path())?;
}
}
Advanced Globbing
By using one of the constructors of globwalk::GlobWalker
, it is possible to alter the
base-directory or add multiple patterns.
extern crate globwalk;
use std::fs;
let walker = globwalk::GlobWalkerBuilder::from_patterns(
BASE_DIR,
&["*.{png,jpg,gif}", "!Pictures/*"],
)
.max_depth(4)
.follow_links(true)
.build()?
.into_iter()
.filter_map(Result::ok);
for img in walker {
fs::remove_file(img.path())?;
}
Structs
- Possible file type filters. Constants can be OR’d to filter for several types at a time.
- Error from parsing globs.
- An iterator which emits glob-matched patterns.
- An iterator for recursively yielding glob matches.
Functions
- Construct a new
GlobWalker
with a glob pattern. - Construct a new
GlobWalkerBuilder
with a glob pattern.
Type Aliases
- A directory entry.
- Error from iterating on files.